# 放弃本地修改
drop:
	git add .; git stash; git stash drop

# 代码不着急发布，但又不想往dev合并，还不想在t上相互覆盖，那就来一个dev预发分支t分支
# 当前分支已提交 -> 合并最新的dev分支到当前分支 -> 合并当前分支到最新的t分支 -> push
# 发布上线还是走老的套路
t:
	make t1;

quickT:
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		echo "当前分支: $$branch" && \
		git checkout t && \
		git pull --rebase && \
		git merge $$branch && \
		echo "merge: \033[0;31m$$branch\033[0m" && \
		git push && \
		git checkout $$branch;

# make t发现有大量冲突需要合并，在确认本分支没有问题后，可新建t分支
newT:
	# 忽略分之不存在错误，删除t分支
	make newT1;

# merge 测试分支
t%:
	@# echo $*;
	- git branch -D t$*;
	git fetch;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		echo "当前分支: $$branch" && \
		git checkout t$* && \
		git pull --rebase && \
		echo "merging: \033[0;31morigin/develop\033[0m" && \
		git merge origin/develop && \
		echo "merging: \033[0;31m$$branch\033[0m" && \
		git merge $$branch && \
		git push && \
		git checkout $$branch;
	@ echo "\n🚧自动发布中，可在此查看进度 https://gitlab.weipaitang.com/f2e/webApp/pipelines";

quickT%:
	@# echo $*;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		echo "当前分支: $$branch" && \
		git checkout t$* && \
		git pull --rebase && \
		git merge $$branch && \
		echo "merge: \033[0;31m$$branch\033[0m" && \
		git push && \
		git checkout $$branch;

newT%:
	# 忽略分支不存在错误，删除分支
	@# echo $*;
	- git branch -D t$*;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		git checkout develop && \
		git pull --rebase && \
		git checkout -b t$* && \
		git merge $$branch && \
		git push --set-upstream origin t$* --force && \
		git checkout $$branch;

# env4测试环境
t4:
	- git branch -D t4;
	git fetch;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		echo "当前分支: $$branch" && \
		git checkout t4 && \
		git pull --rebase && \
		git merge origin/develop && \
		echo "merge: \033[0;31morigin/develop\033[0m" && \
		git merge $$branch && \
		echo "merge: \033[0;31m$$branch\033[0m" && \
		git push && \
		git checkout $$branch;

# 合并当前分支到灰度分支
gray:
	- git branch -D gray;
	git fetch;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		echo "当前分支: $$branch" && \
		git checkout gray && \
		git pull origin gray && \
		git merge $$branch && \
		echo "merge: \033[0;31m$$branch\033[0m" && \
		git push && \
		git checkout $$branch;
	@ echo "\n🚧自动发布中，可在此查看进度 https://gitlab.weipaitang.com/f2e/webApp/pipelines";

quickGray:
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		echo "当前分支: $$branch" && \
		git checkout gray && \
		git pull --rebase && \
		git merge $$branch && \
		echo "merge: \033[0;31m$$branch\033[0m" && \
		git push && \
		git checkout $$branch;

newGray:
	# 忽略分之不存在错误，删除t分支
	- git branch -D gray;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		git checkout develop && \
		git pull --rebase && \
		git checkout -b gray && \
		git merge $$branch && \
		git push --set-upstream origin gray --force && \
		git checkout $$branch;

# 快速rebase，为什么不使用git rebase origin/develop ?
rebase:
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		git checkout develop && \
		git pull --rebase && \
		git checkout $$branch && \
		git rebase develop;

# 使用对方修改解决冲突
mt:
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		git checkout develop && \
		git pull --rebase && \
		git checkout $$branch && \
		git merge --abort;git merge develop --strategy-option theirs;

# 使用自己的修改解决冲突
mo:
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
		git checkout develop && \
		git pull --rebase && \
		git checkout $$branch && \
		git merge --abort;git merge develop --strategy-option ours;


# fork test zxz
# 同步主仓库
upstream:
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
        echo "当前分支: $$branch" && \
        git checkout develop && \
        git fetch upstream && \
        git rebase upstream/develop && \
        git pull --rebase && \
        git push origin develop && \
        git checkout $$branch;

ft%:
	@# echo $*;
	- git branch -D t$*;
	git fetch;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
        echo "当前分支: $$branch" && \
        git checkout origin/t$* && \
        git checkout -b t$* && \
        git branch --set-upstream-to=refs/remotes/origin/t$* t$* && \
        git pull --rebase && \
        git fetch upstream && \
        git rebase upstream/t$* && \
        git merge origin/develop && \
        echo "merge: \033[0;31morigin/develop\033[0m" && \
        git merge $$branch && \
        echo "merge: \033[0;31m$$branch\033[0m" && \
        git push --set-upstream git@gitlab.weipaitang.com:f2e/webApp.git t$* && \
        git checkout $$branch;

fgray:
	- git branch -D gray;
	git fetch;
	export branch=`git branch | grep \* | grep -Eo ' .+'` && \
        echo "当前分支: $$branch" && \
        git checkout origin/gray && \
        git checkout -b gray && \
        git branch --set-upstream-to=refs/remotes/origin/gray gray && \
        git pull --rebase && \
        git fetch upstream && \
        git rebase upstream/gray && \
        git merge origin/develop && \
        echo "merge: \033[0;31morigin/develop\033[0m" && \
        git merge $$branch && \
        echo "merge: \033[0;31m$$branch\033[0m" && \
        git push --set-upstream git@gitlab.weipaitang.com:f2e/webApp.git gray && \
        git checkout $$branch;

resetSoft:
	@echo "------以下为你的commit信息-------"
	@git log develop.. --pretty=format:%B | grep -vE '^\s*$$' | cat
	@echo "\n\n------代码已经reset成功，请add commit有意义的提交信息-------"
	@git log develop.. --pretty=format:"%P" --reverse | head -1 | xargs git reset --soft; git reset HEAD . > /tmp/webApp.gitreset.log; git status

